#pragma once
#include "IRemoteAdapter.h"
#include "MSIDManager.h"

namespace RemoteUtility
{
	namespace RemoteAdapter{
		class CZMotionRemoteAdapter : public IRemoteAdapter
		{
		public:
			explicit CZMotionRemoteAdapter(IMessageShower* msgBox);

			virtual ~CZMotionRemoteAdapter(){ /* do nothing */ }

			virtual E_ZMotion_ErrorCode CheckRemoteDriver();
			//searching and stop searching two functions does not used
			virtual bool DoSearching();
			virtual bool IsInSearching() const { return false; }
			virtual bool DoStopSearching();

			virtual bool DoInstall();
			virtual bool DoUninstall();

			virtual E_ZMotion_ErrorCode getErrorCode() const { return m_errCode; }
			virtual void setErrorCode(E_ZMotion_ErrorCode ec);
			virtual void setMessageBox( IMessageShower* msgBox ) { m_pMessageShower = msgBox; }
		private:
			void checkDriverHelper();
			E_ZMotion_ErrorCode m_errCode;

			// replace with emu manager
			CMSIDManager m_MSDriver;
			IMessageShower* m_pMessageShower;
		};
	}
}
